package lcof;

/**
 * @author 江岸
 * @version V1.0
 * @ClassName: HammingWeight15
 * @description: 请实现一个函数，输入一个整数（以二进制串形式），输出该数二进制表示中 1 的个数。例如，把 9 表示成二进制是 1001，有 2 位是 1。因此，如果输入 9，则该函数输出 2。
 * @date 2021/3/317:28
 * @since V1.0
 */
public class HammingWeight15 {

    //二进制 位运算
    public int hammingWeight(int n) {
        int x=0;
        while (n!=0){
            //依次去掉n的最后一个0
            n = n&(n-1);
            x++;
        }
        return x;
    }

    public int 移位运算(int n) {
        int res = 0;
        while(n != 0) {
            res += n & 1;
            n >>>= 1;
        }
        return res;
    }

}
